//
//  stringStream.hpp
//  learnC++
//
//  Created by liuzhibing on 2018/7/9.
//  Copyright © 2018年 yunfan.com. All rights reserved.
//

#ifndef stringStream_hpp
#define stringStream_hpp

#include <stdio.h>
#include <iostream>
#include <sstream>

using namespace std;

class TestString2 {
    
    
public:
    
    TestString2();
    ~TestString2();
    
    void testStringStream(){
        
        std::stringstream os;
//        int i = 10;
//        os << "en garde!" << i << endl;
//
//        cout << os.str();
//        //直接赋值
//        std::string s("sss");
//        os.str(s);
//
//        cout << os.str();
        
        // 使用>>提取字符
//        os << "123 45 67.8";
//        string strvalue1;
//        string strvalue2;
//
//        os >> strvalue1;
//        os >> strvalue2;
//
//        cout << strvalue1 << " - " << strvalue2 << endl;
        
        // 数字转成字符串
        
//        int nValue = 1234;
//        double dValue = 67.89;
//
//        os << nValue << " " << dValue;
//
//        string strValue1,strValue2;
//
//        os >> strValue1 >> strValue2;
//
//        cout << strValue1 << " " << strValue2 << endl;
        
        //字符串转成数字
//        os << "12345 67.89";
//        int nValue;
//        double dValue;
//
//        os >> nValue >> dValue;
//
//        cout << nValue << " " << dValue << endl;
        
        //清空字符串
        //1
//        os << "hello";
//
//        os.str("");//erase the buffer
//
//        os << "world!";
//
//        cout << os.str();
        
        //2
//        os << "hello";
//
//        os.str(std::string());//erase the buffer
//
//        os << "world";
//        cout << os.str();
        
        //3
        os << "hello";
        
        os.str("");//erase the buffer
        //clear（）重置可能已设置的任何错误标志，并将流返回到ok状态。 我们将在下一课中详细讨论流状态和错误标志。
        os.clear();
        
        os << "world";
        cout << os.str();
        
    }
    
};

#endif /* stringStream_hpp */
